Image compiler
Description
The image compiler is a command line tool designed to enhance the deployment process of Orchestra packaged applications. A packaged application is an Orchestra container that incorporates additional process scenarios, collectively forming an application. The image compiler facilitates the creation of packaged applications.
The following artifacts are required when executing the tool:
-
Process scenario file(s) (psc, psx)
-
Optional: A standard Orchestra Image file. The tool generates only configuration files if no input image is specified.
-
Optional: Container template file(s). The tool uses default templates if no custom templates are specified.
Note: If an encrypted Process Scenario file is in psx format, you must activate an Orchestra license to enable the image compiler to decrypt the psx files. Please refer to the licensing commands: createNodeActivation, activateNode, activateProduct, updateNodeActivation, and nodeInfo for more information.
The output of the image compiler improves the deployment tasks of a packaged application. For all landscape and credential entries found in the source scenarios, the image compiler generates configuration files that are extended with additional properties, which can be injected via container settings.
Start scripts
The image compiler can be executed using the provided start scripts. Depending on your operating system, you will need to select one of the following:
Orchestra/Startscripts/Unix/imagecompiler.sh
Orchestra/Startscripts/Windows/imagecompiler.cmd
User Commands
image-compile
Analyzes environment and credential entries from the provided scenarios and generates a Docker Compose file in YML format or a Kubernetes ConfigMap from the templates. Additionally, it generates an Orchestra Image containing the specified scenarios. The finished file will be created in the designated target directory.
Required parameters
| Parameter | Description |
|---|---|
| -source <directory|pscpath> | The directory of psc files or the specific psc filepath from which the psc file(s) will be read. |
| -target <directory> | The directory where the output file(s) will be saved. |
Optional parameters
| Parameter | Description |
|---|---|
| -dockerTemplate <file> | The Docker configuration template file. Predefined template placeholders: {IMAGE_NAME} is replaced with the Image Name {AUTODEPLOYMENT_PATH} is replaced with Auto Deployment Path in the container {SCENARIO_CONFIGURATION} is replaced with the list of scenario properties. |
| -kubernetesTemplate <file> | The Kubernetes configuration template file. Predefined template placeholders: {AUTODEPLOYMENT_PATH} is replaced with Auto Deployment Path in the container {SCENARIO_CONFIGURATION} is replaced with the list of scenario properties. |
| -mode <mode> | emit_configuration: Only emit the configuration files (default value). compile: Compile a new image and emit the configuration files. |
| -image <file> | The Docker base image file path. |
| -type <type> | docker: Generate only Docker configuration files. kubernetes: Generate only Kubernetes configuration files. all: Generate both configuration types (default value). |
| -binaryMode <mode> | base64: Encode credential content as base64 and store it in the configuration files (default value). fileNameOnly: Store only the file name in configuration. file: Store file name and generate credential content to files. |
| -autoDeployDir <directory> | The directory in the container configured for auto deployment to store the psc file(s). (default directory: /tmp/orchestra/autodeployment/internal). |
| -binDir <directory> | The directory in the container where binary files should be generated. (default directory: /tmp/orchestra/security/binary). |
| -licenseFile <licensepath> | The path to the Orchestra license file to be added to the container. |
| -targetImage <name> | The name of the created target image. |
createNodeActivation
Generates a license activation request file.
Required parameters
| Parameter | Description |
|---|---|
| -customerKey <customerKey> | The customer key. |
| -nodeType <type> | The type of the node, e.g., Production, Integration, Development. |
| -nodeName <nodeName> | The name of the node. |
| -target <directory> | The directory where the licensing request file will be saved. |
updateNodeActivation
Generates an updated license activation request file.
Required parameters
| Parameter | Description |
|---|---|
| -target <directory> | The directory where the licensing request file will be saved. |
activateNode
Activates an Orchestra node.
Required parameters
| Parameter | Description |
|---|---|
| -response <file> | The path to the response file. |
activateProduct
Activates the product license.
Required parameters
| Parameter | Description |
|---|---|
| -licenseFile <file> | The path to the product license file. |
Optional parameters
| Parameter | Description |
|---|---|
| -productKey <productKey> | The product key. |
nodeInfo
Displays node information.
Batch Mode
The batch mode is initiated when the start script is launched with additional arguments.
Note: Execution will be stopped if any required parameter is missing.
Example
To execute the image compiler in batch mode, run the following command:
/imagecompiler.sh
> image-compile -source .\psc -target .\target -dockerTemplate .\docker_compose_template.yml -kubernetesTemplate .\kubernetes_template.properties -image .\image_latest.tar.gz -mode compile -type all -binaryMode fileNameOnly -licenseFile .\license.xml -targetImage .\target\image.tar.gz
Interactive mode
If the image-compile command is executed without any arguments, the image compiler will start in interactive mode. In this mode, the compiler remains open, allowing you to interact until you enter the command exit.
Example
To execute the image compiler in interactive mode, run:
./imagecompiler.sh
> image-compile
help
Prints a help screen containing a list of all available commands and their detailed descriptions.
Example
./imagecompiler.sh
> help
Note: If you require the Image Compiler for Orchestra, please contact licensing@soffico.de. Indicate in your email which Orchestra version you need it for.